#include <iostream>
#include <vector> //单端动态数组 o(1)

int main()
{   
    std::vector<int> v;
    v.push_back(1);//尾插法
    v.push_back(2);
    v.push_back(3);

    auto ite = v.begin() + 1; //随机迭代器
    v.insert(ite,99);//按迭代器插入
    v.erase(v.begin() + 1); //按迭代器删除
    v.pop_back();//尾删法
    for(auto ite = v.begin(); ite != v.end();ite++)
    {
        std::cout<<*ite<<" ";
    }
    std::cout<<std::endl;
  
    /*std::vector<int>::iterator ite*/  auto ite =  v.begin();//首迭代器：指向容器的第一个元素
    // std::cout<<*ite<<std::endl;

    // ite = v.end();//尾迭代器：指向容器的最后一个元素的下一个位置
    // std::cout<<*(ite -1)<<std::endl;
    // for(int i = 0;i < v.size();i++)
    // {
    //     std::cout<<v[i]<<" ";
    // }
    // std::cout<<std::endl;
    
    for(auto ite = v.begin();ite != v.end();)
    {
        if(*ite == 2)
        {
            ite = v.erase(ite);
        }
        else
        {
            ite++;
        }
    }
    v.clear(); //清空容器
    v.data();
    return 0;
}